package edu.algo3.algoThief.dao;

import java.util.ArrayList;
import java.util.Iterator;
import java.util.List;

import org.jdom2.Element;

public class PistasPais extends repositorioXML {

	// ********* Variables de instancia **********
	
	private static String nombreDocumentoXML = "datos/pistas/xml/listaPistasPais.xml";
	
	// ********* Constructores **********
	
	protected PistasPais()
	{
		
	}
	
	// ********* Getters **********
	
	protected static String getPista(String nivelDificultad, String paisNombre, String edificioNombre)
	{
		parseDocumento(nombreDocumentoXML);
		return sacarPistaAleatoria(creaListaDePistaPorPais(nivelDificultad, paisNombre, edificioNombre));
	}
	
	// ********* Setters **********
	
	// ********* Metodos de instancia **********
	
	static ArrayList<String> creaListaDePistaPorPais(String nivelDificultad, String paisNombre, String edificioNombre)
	{
			ArrayList<String> listaDePistas = new ArrayList<String>();
		
		   List<Element> listaNivelesDificultad = racine.getChildren("dificultad");
		   Iterator<Element> i1 = listaNivelesDificultad.iterator();
		   while(i1.hasNext())
		   {
		      Element dificultad = (Element)i1.next();
		      if(dificultad.getAttribute("nivelDificultad").getValue().equals(nivelDificultad))
		      {
		    	  List<Element> listProximosPaises = dificultad.getChildren("proximoPais");
		    	  Iterator<Element> i2 = listProximosPaises.iterator();
		    	  while(i2.hasNext())
		    	  {
		    		  Element proximoPais = (Element)i2.next();
		    		  	if(proximoPais.getAttribute("paisNombre").getValue().equals(paisNombre))
		    		  	{
		    		  		List<Element> listEdificios = proximoPais.getChildren("edificio");
		    		  		Iterator<Element> i3 = listEdificios.iterator();
		    		  		while(i3.hasNext())
		    		  		{
		    		  			Element edificio = (Element)i3.next();
		    		  			if(edificio.getAttribute("edificioNombre").getValue().equals(edificioNombre))
		    		  			{
		    		  				List<Element> listPistas = edificio.getChildren("pista");
		    		  				Iterator<Element> i4 = listPistas.iterator();
		    		  				while(i4.hasNext())
		    		  				{
		    		  					Element pista = (Element)i4.next();
		    		  					listaDePistas.add(pista.getText());
		    		  					/*System.out.println(pista.getText());*/
		    		  				}
		    		  			}
		    		  		}
		    		  	}	    		  
		    	  	 } 	
		    	  }
		      }
		   return listaDePistas;
		}
	
	
	static void creaListaDePistaPorLadron(String ladronApellido)
	{
		
	}
	
}
